define (require, exports, module) ->
  # 加载样式
  require 'mods/pay/pay_two/pay_two_css.css'
  # 定义组件
  module.exports = Vue.extend

    # 组件模板
    template: require 'mods/pay/pay_two/pay_two_tpl.js'

    # 定义变量
    data: () ->
      # 是否加载完成
      loadedSucc: false
      # 加载失败提示语
      loadedFail: ''
      # 错误提示
      errorMsg: ''
      # 选择银行的指针
      selectYhIdx: -1
      # 显示验证码弹出框
      identify_dialog:false
      # 验证码是否正确
      identify_exit: false
      # 验证码
      identify_val: ''
      # 发送验证码提示
      identity_tip: false
      # 获取验证码按钮
      yzm_btn_value: '获取验证码'
      # 提交的信息
      submitOpt: {}
      # 银行名称
      yhNames:[
        '中国工商银行',
        '中国农业银行',
        '中国银行',
        '中国建设银行',
        '交通银行',
        '招商银行',
        '中信银行',
        '中国光大银行',
        '华夏银行',
        '中国民生银行',
        '广发银行',
        '平安银行',
        '兴业银行',
        '浦发银行',
        '北京银行',
        '宁波银行',
        '天津银行'
      ]
      # 在线支付产品信息
      buyProdInfo: {}

    # 定义方法
    methods:

      # 插件加载
      pluginLoad: () ->
        self = @

      # 加载成功
      loadedSuccFunc: () ->
        self = @
        self.$nextTick () ->
          # 加载成功标识
          self.loadedSucc = true
          # 插件加载
          self.pluginLoad()

      # 在线支付步骤2提交
      onSubmit2: () ->
        self = @
        self.validateForm()
        self.yzm_btn_value = '获取验证码'
        self.identity_tip = false
        if false is self.identify_exit
          self.identify_dialog = true
          return
        self.$router.push {path:'/pay/3'}

      # 查看详情
      goDetail: (_id) ->
        self = @
        self.$router.push '/product/' + _id

      # 获取手机验证码
      getIdentify: () ->
        self = @
        self.yzm_btn_value = '重新获取验证码'
        self.identity_tip = true

      # 弹出框关闭
      closeDialog: () ->
        self = @
        self.identify_dialog = false

      # 点击选择银行的类别
      selectYhType: (id) ->
        self = @
        self.selectYhIdx = id
        self.submitOpt.yh_type = self.yhNames[id]

      # 验证填写信息
      validateForm: () ->
        self = @
        item = self.submitOpt
        if '' is item.yh_card
          self.errorMsg = '储蓄卡号不能为空'
          return
        if '' is item.u_name
          self.errorMsg = '姓名不能为空'
          return
        if '' is item.id_card
          self.errorMsg = '身份证号不能为空'
          return
        if '' is item.gp_date
          self.errorMsg = '证件有效期不能为空'
          return
        if '' is item.address
          self.errorMsg = '联系地址不能为空'
          return
        if '' is item.job
          self.errorMsg = '职业不能为空'
          return
        if '' is item.yh_phome
          self.errorMsg = '银行预留手机号不能为空'
          return

    created: () ->
      self = @
      self.buyProdInfo = self.$route.params
      self.buyProdInfo.ddbh = '123456789'

    # 计算属性
    computed:

      # 加载中的样式
      loaddingClass: () ->
        self = @
        if self.loadedSucc
          return 'c-hidden'
        if self.loadedFail
          return 'c-hidden'
        return ''

      # 加载成功的样式
      loadedSuccClass: () ->
        self = @
        return if self.loadedSucc then '' else 'c-vhidden'

      # 加载失败的样式
      loadedFailClass: () ->
        self = @
        return if self.loadedFail then '' else 'c-hidden'

    # 引入组件
    components:
      'c-pay-step': require 'mods/pay/pay_step/pay_step_mod'

    # 组件初始化
    mounted: () ->
      self = @

      # 监听输入手机验证码
      self.$watch 'identify_val', (identify_val) ->
        if 6 is identify_val.length
          Vue.set(self.submitOpt,'identify_val',identify_val)
          # self.submitOpt.identify_val = identify_val
          self.identify_dialog = false
          self.identify_exit = true
      
      # 加载成功 - 处理函数
      return self.loadedSuccFunc()